패킷덤프 C 코드

---- 1. packetdump 1. 패킷덤프하는 간단한 코드 1. 1. Version 0.1 1. 2004/01/28----수신 또는 전송할 패킷을 덤프하는 간단하는 예제입니다.네트워크 프로그래밍에서 가장 중요하면서도 기본이 되는게 실제로 패킷이 정상적으로 만들어져서 전송이 됐는지,반대로 수신받은 패킷이 정상적인지 검증하고 싶을 때 패킷 내용을 직접 ...

Go를 이용한 Web 애플리케이션 개발

앞서 다루었던 HTTP 챕터의 연장이다. 이번 장에서는 go 언어를 이용해서 완전히 작동하는 웹 서버를 만들 것이다. 원문에서는 중국어 flash card(단어장)를 서비스하는 예제를 제공하고 있는데, 예제로 하기에는 좀 직관적이지 않다는 생각이 들었다. 그래서 단어장 서비스 대신에, 유저 정보를 관리하는 "유저 정보 데이터 베이스" 서비스를 만들기로 했다...

golang 네트워크 프로그래밍

golang 네트워크 프로그래밍이 문서의 원문은 http문서는 원문에 대한 번역물로 몇몇 부분에서 변경이 있을 수 있다. 번역은 다음의 과정을 거친다. 초벌 번역 Copy & Paste 하는 코드는 없다. 문서의 모든 코드는 직접 만들고 테스트 한다. 번역 감수 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. HTML 1. 1...

Architecture

이번 장에서는 분산 시스템을 위한 주요 아키텍처에 대해서 다룬다. 소프트웨어적인 결과물을 만들기 위해서는 만들고자 하는 소프트웨어에 대한 아이디어를 가지고 있어야 한다. 아이디어 없는 결과물이란 있을 수 없다. 그리고 소프트웨어에 대한 아이디어를 만들기 위해서는 소프트웨어가 작동하는 환경에 대한 지식을 가지고 있어야 한다. GUI 프로그램과 batch 프로...

xml-rpc

xml-rpcXML-RPC는 인터넷상에서 쉽고 간단하게 procedure calls을 사용할 수 있도록 도와준다. XML-PRC는 XML(12)문서의 정보를 procedure call로 변환한다. 이러한 과정은 HTTP에 기반을 두고 있다. procedure call에 대한 응답역시 XML로 이루어진다. XML을 요청/응답에 활용하므로, 표준적이고 확장용...

overlapped I/O 모델

소켓은 기본적으로 봉쇄/동기로 만들어진다. 이 모델은 데이터 입출력 부분에서 봉쇄(blocked)된다는 문제점을 가진다. 이 모델로는 하나의 쓰레드에서 두 개 이상의 소켓을 다루기가 힘들다. 이 모델을 바꾸지 않고 두개 이상의 소켓을 처리하려면 "멀티 쓰레드" 기술을 함께 사용하는 수 밖에 없다....

TCP Wrapper

TCP Wrapper Wrapper는 호스트 기반의 네트워크 ACL 시스템으로, 리눅스나 BSD 같은 Unix-like 운영체제에서 Internet Protocol 서버로의 네트워크 접근을 필터링 하기 위해서 사용한다. TCP wrapper 그냥 줄여서 wrappers라고 부르기도 한다. 설정이 간단해서 널리 사용하고 있다.TCP wrapper를 사용하기...

winsock

winsock음 어쩌다보니 윈도우 네트워크 프로그래밍도 좀 다루어야 할 일이 생겨서, winsock에 대해서 알아보기로 했다.Winsock은 Windows Sockets API의 줄임말이라고 한다. TCP(windows는 소켓을 로 보지 않는다. 해서 socket(), accept(), bind(), connect()에서 file discriptor를 쓰...

epoll을 제어하기 위한 인터페이스

epoll을 제어하기 위한 인터페이스. 이 함수는 epoll 파일지정자인 epfd를 제어한다. 제어는 제어하고자 하는 파일지정자fd에 대해서 op를 이용해서 명령을 내리는 것으로 이루어 진다. 또한 event구조체의 사용자 정의 데이터를 변경함으로 써 나중에 이벤트가 발생했을때 이벤트에 대한 정보로 사용할 수 있다. 다음은 정의된 events구조체이다....

epoll 파일을 연다.

epoll 파일을 연다. 입출력 이벤트 저장을 위한 size공간의 할당을 커널에게 요청한다. 그러나 커널이 반드시 요청된 크기만큼의 공간을 할당하는 건 아니다. 그러므로 size는 예상 크기보다 좀더 크게 잡아주는게 좋다. 함수가 성공적으로 호출되었다면 파일지정자를 리턴한다. 더이상 이벤트 관련작업이 필요없다면 반드시 close(2)를 호출해서 닫아줘야 ...